在四年的接案經驗中,我的專案都是獨立開發,導致:
加上去年開了工作室,也該是時候打造屬於工作室的SaaS產品,從而擺脫各種客製化的服務,可以推出一套SaaS產品來尋找機會。
因此決定建立統一的 Kyo-System SaaS 平台,從 OTP 驗證微服務開始,逐步替換既有系統。
系統藍圖:
┌─────────────────────────────────────────────────────────────────────┐
│ EXTERNAL SYSTEMS │
├─────────────────┬─────────────────┬─────────────────┬──────────────┤
│ Legacy Frontend│ Legacy Backend │ Mitake SMS │ Monitoring │
│ • Vue/React │ • FastAPI/SB │ • OTP Sending │ • Sentry/AMP│
└─────────────────┴─────────────────┴─────────────────┴──────────────┘
│ REST
▼
┌─────────────────────────────────────────────────────────────────────┐
│ FRONTEND (MANAGEMENT) │
│ React Vite + Mantine + Zustand + ORPC │
│ • OTP Form • Template Mgmt • Logs │
└─────────────────────────────────────────────────────────────────────┘
│ ORPC
▼
┌─────────────────────────────────────────────────────────────────────┐
│ API GATEWAY │
│ TypeScript + Fastify │
│ • ORPC (Internal) • REST (External) │
└─────────────────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ AUTH SERVICE │ │ GYM SERVICE │ │ BOOKING SERVICE│
│ TS + Fastify │ │ (Future) │ │ (Future) │
│ + Redis/Prisma │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ DATA & MESSAGE LAYER │
├─────────────────┬─────────────────┬─────────────────┬──────────────┤
│ RDS PostgreSQL │ ElastiCache │ Redis Streams │ S3 Storage │
│ • OTP Logs │ • OTP Cache │ • OTP Events │ • Files │
└─────────────────┴─────────────────┴─────────────────┴──────────────┘
為什麼要選擇AWS服務呢?主要是熟悉AWS的服務,在之前的工作有深度的使用AWS的服務打造前後端的部署流程,加上使用過AWS和GCP,還是AWS比較符合我的需求。
為什麼選擇這些 AWS 服務?
後面開始設計第一階段目標,OTP 驗證微服務的部署環境。